1. Field of the Invention
The present invention relates generally to computer system architecture and control, and more particularly to a method and apparatus for arbitrating the access of multiple devices in a computer system to a shared bus of the computer system.
2. State of the Art
As computer systems become increasingly more complex, the manner by which they access and control shared devices becomes a significant factor in maintaining high system throughput and operating efficiency. For example, as the number of devices that share a common bus in a computer system is increased, the computer system must more efficiently arbitrate control of the bus among the devices.
Known techniques for arbitrating access to a shared bus have been deemed acceptable, given the relatively small number of devices and the absence of time critical operations, such as real time signal processing, in conventional computer systems. However, these techniques have effectively limited the number and types of devices which can be connected to the shared bus without affecting processing efficiency. For example, sophisticated multimedia features cannot be included in conventional computer systems without imposing a trade-off in overall operating efficiency of the computer system. This is because computer systems which provide multimedia features must be able to process large quantities of data in real time; for example, real time audio and video data streams.
Conventional techniques for arbitrating control of a shared bus in a computer system are of two general types: (1) those which cannot assign a high priority to a device that performs time critical operations, such as real time signal processing; and (2) those which can assign hierarchical priorities to all devices of the computer system but which, in so doing, allow the higher priority devices to dominate control of the computer system and effectively deny lower priority devices from obtaining control of the shared bus. Currently available arbitration techniques include: (1) first-in/first-out arbitration; (2) "daisy-chaining"; and (3) use of a central arbiter. With first-in/first-out arbitration, individual requests from the plurality of devices sharing a common bus in a computer system are queued in the order in which they arrive at an arbiter of the computer system. Such a scheme ensures equal access among the plurality of devices to the bus so that no one device will be denied access to the bus for an extended period. The disadvantage of first-in/first-out arbitration is that it does not take into account the increasingly more diverse and sophisticated architecture of computer systems, such as multimedia computer systems, wherein the range of features and overall operating efficiency can be enhanced by providing different devices of the computer system different priorities in accessing the shared bus.
Daisy chaining is similar to first-in/first-out arbitration in that a fixed routine is used to arbitrate requests from plural devices of a computer system so that no single device will be denied control of the bus over extended periods of time. With daisy chaining, a bus available signal indicating that the shared bus is available for use is transmitted from one device to the next in a predetermined order. Once a device which is requesting access to the bus receives the bus available signal, that device can access and/or take control of the bus. As with first-in/first-out arbitration, daisy chaining can ensure that all devices will have an opportunity to acquire control of the shared bus. However, this advantage is acquired at the expense of overall operating efficiency when, for example, multimedia features are provided. For example, a relatively low level device which could process data at a later time can be awarded control of the bus even though a real time signal is being received which requires immediate attention.
Computer systems which use a central arbiter to arbitrate access to a shared bus among a plurality of devices typically afford each device requesting access to the bus a given hierarchical priority. This priority can be determined on the basis of predetermined criteria, such as: (1) the importance of the operation to be executed by the device, relative to those of other devices; and (2) the time which the device has been waiting to gain control of the shared bus. Using the priority of each device requesting control of the shared bus, the central arbiter will queue the various requests from the plural devices. This queuing of requests can, of course, be reconfigured each time a new request is received.
An advantage to the use of a central arbiter is that the plurality of devices included in a computer system can be attributed varying priorities in gaining access to and control of a shared bus, such that drawbacks associated with first-in/first-out arbitration and daisy chaining are avoided. However, prioritization techniques based on the use of a central arbiter can be relatively complex and can often result in one or more lower priority devices of the computer system being effectively denied access to the shared bus for extended periods of time. For example, the possibility that one or more devices would be denied control of the bus is quite high in multimedia based systems, wherein devices which execute real time operations can dominate system bus control; when these highest priority devices are idle, system bus control is awarded to the next lower priority devices. Only when all other devices are idle do the very lowest priority devices, acquire system bus control. Accordingly, the very lowest level devices would have great difficulty ever obtaining system bus control. Thus, while the use of a central arbiter overcomes the drawbacks of first-in/first-out arbitration and daisy chaining, it suffers the drawback of effectively denying bus system control to some devices.
Accordingly, it would be desirable to provide a computer system wherein the control of a shared bus by a plurality of devices included in the computer system is provided in a manner whereby overall operating efficiency is enhanced without effectively denying one or more devices in the computer system from control of the bus for extended periods of time. Further, it would be desirable to provide a computer system wherein such enhanced operating efficiency can be achieved even with an increased number of devices included in the computer system having access to the shared bus. Further, it would be desirable to provide enhanced operating efficiency in a computer system which provides sophisticated multimedia features, such as real time audio/video data processing, animation and so forth.